
package pe.com.fastfood4.rie.controller;

import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
import pe.com.fastfood4.rie.model.Reserva;
import pe.com.fastfood4.rie.service.ReservaService;

/**
 * BuscarReservaPorFechaController.java
 * es llamado desde confirmarReservaResultado.jsp, obtienen las reservas por fecha especifica
 * y se las pasan a confirmarReservaResultado.jsp
 * @author grupo 06 - upc_dew 2010
 * @since 1.0
 * @see ifernandez.aq@gmail.com
 */
public class BuscarReservaPorFechaController implements Controller{

    private ReservaService reservaService;

    public void setReservaService(ReservaService reservaService) {
        this.reservaService = reservaService;
    }

    protected final Log logger = LogFactory.getLog(getClass());

    public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse res) throws Exception {
        String fechaEspecifica = req.getParameter("fechaEspecifica");
        logger.info("fechaParameter: " + fechaEspecifica);

        String anno = fechaEspecifica.substring(0, 4);
        String mes = fechaEspecifica.substring(5, 7);
        String dia = fechaEspecifica.substring(8, 10);
        logger.info("anno: " + anno);
        logger.info("mes: " + mes);
        logger.info("dia: " + dia);

        int intAnno = Integer.parseInt(anno);
        int intMes = Integer.parseInt(mes);
        int intDia = Integer.parseInt(dia);

        DateTime fechaConsulta = new DateTime(intAnno, intMes, intDia, 0, 0, 0, 0);
        DateTimeFormatter formatoLongDate = DateTimeFormat.longDate();
        String fechaActualFormatLongDate1 = formatoLongDate.withLocale(Locale.getDefault()).print(fechaConsulta);

        List<Reserva> reservas = reservaService.getReservasPorFecha(fechaEspecifica);

        Map<String, Object> myModel = new HashMap<String, Object>();
        myModel.put("fechaActualFormatLongDate1", fechaActualFormatLongDate1);
        myModel.put("reservas", reservas);

        return new ModelAndView("confirmarReservaResultado", "model", myModel);
    }

}
